#include<stdlib.h>
#include<cstring>
#include<errno.h>
#include<iostream>
using namespace std;

#include<sys/types.h>
#include<signal.h>
#include<unistd.h>


void Usage(const std::string& proc)
{
    cerr<<"Usage:\n\t"<<proc<<" signal pid"<<endl;
}

int cnt=0;
void hander(int signal)
{
    cout<<"我是一个进程，刚刚获取了一个信号: "<< signal <<"cnt: "<<cnt<<endl;
    exit(1);
}
int main(int argc,char* argv[])
{
    signal(14,hander);
    alarm(1);
    while(1)
    {
        cnt++;
    }
    return 0;
}

// int main(int argc,char* argv[])
// {
//     signal(2,hander);
//     signal(6,hander);
//     while(1)
//     {
//         sleep(1);
//         //raise(2);
//         //abort();
//         //exit(2);
//     }
//     return 0;
// }

// ./mykill -9 1234
// int main(int argc,char* argv[])
// {
//     if(argc!=3)
//     {
//         Usage(argv[0]);
//         exit(1);
//     }
//     cout<<argv[1]<<" --- "<<argv[2]<<endl;
//     if( kill(static_cast<pid_t>(atoi(argv[2])),atoi(argv[1]))==-1 )
//     {
//         //cout<<argv[1]<<" -111-- "<<argv[2]<<endl;
//         cerr<<"kill: "<<strerror(errno)<<endl;
//         exit(2);
//     }
//     return 0;
// }